home *** CD-ROM | disk | FTP | other *** search
- on SavedGames pChange
- global gGameData
- set lSaved to 3
- if voidp(pChange) <> 1 then
- setAt(gGameData, lSaved, pChange)
- end if
- return getAt(gGameData, lSaved)
- end
-
- on CheckName pSelect
- set lTemp to GetName(pSelect)
- if lTemp = EMPTY then
- return 0
- else
- return 1
- end if
- end
-
- on GetName pUserNum
- global gGameData
- set lStart to CalcStart(pUserNum)
- return getAt(gGameData, lStart)
- end
-
- on SelectUser pUserNum, pNewName
- global gGameData, gUserData, gActPlay, gRecStep, gDontSave, gSaveExit
- if gSaveExit <> 1 then
- set gUserData to MakeNewUser()
- end if
- if voidp(pUserNum) = 1 then
- set gDontSave to 1
- else
- set gDontSave to 0
- set gActPlay to pUserNum
- if voidp(pNewName) <> 1 then
- setAt(gUserData, 1, pNewName)
- SavedGames(1)
- UpdateGame()
- else
- set lStart to CalcStart(gActPlay)
- set lEnd to CalcEnd(lStart, gRecStep)
- set gUserData to CopyData(gGameData, lStart, lEnd)
- end if
- end if
- end
-
- on MakeNewUser
- set lNumSect to RetConfig(0)
- set lRetData to [EMPTY]
- repeat with i = 1 to lNumSect
- set lSectCfg to RetConfig(i)
- set lWordList to GetSectList(lSectCfg)
- set lNumItems to the number of words in field lWordList
- set lSectStr to MakeItemList(lNumItems, 0)
- append(lRetData, lSectStr)
- end repeat
- return lRetData
- end
-
- on CalcStart pUserNum
- global gRecStart, gRecStep
- set lActive to pUserNum - 1
- return (lActive * gRecStep) + gRecStart
- end
-
- on CalcEnd pStart, pStep
- return pStart + pStep - 1
- end
-
- on UpdateGame
- global gInPuzzle, gDontSave, gActPlay, gSectNum, gSectData, gUserData, gGameData
- if gInPuzzle = 1 then
- setAt(gUserData, gSectNum, gSectData)
- end if
- if gDontSave = 1 then
- exit
- end if
- set lStart to CalcStart(gActPlay)
- set gGameData to InsertAT(gUserData, gGameData, lStart)
- WriteConfig()
- end
-